home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / EGAVGA.SWG / 0038_TXTFADE.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  2KB  |  93 lines

  1. { RON CZARNIK }
  2.  
  3. Unit TXTFADE;
  4.  
  5. Interface
  6.  
  7. Procedure TextFadeIn(Speed : Integer);
  8. Procedure TextFadeOut(Speed : Integer);
  9.  
  10. Implementation
  11. Uses
  12.   Dos, Crt;
  13.  
  14. Type
  15.   DacType = Array[1..256,1..3] of Byte;
  16.  
  17. Var
  18.   dac1,
  19.   dac2   : DacType;
  20.   x, y,
  21.   i, erg,
  22.   gesamt : Word;
  23.  
  24.  
  25. Procedure Read_DACs(Var Dac : DacType);
  26. Var
  27.   r : Registers;
  28. begin
  29.   r.ax := $1017;
  30.   r.bx := 0;
  31.   r.cx := 256;
  32.   r.es := SEG(Dac);
  33.   r.dx := Ofs(Dac);
  34.   Intr($10, r);
  35. end;
  36.  
  37. Procedure Write_DACs(Dac : DacType);
  38. Var
  39.   r : Registers;
  40. begin
  41.  r.ax := $1012;
  42.  r.bx := 0;
  43.  r.cx := 256;
  44.  r.es := seg(Dac);
  45.  r.dx := Ofs(Dac);
  46.  Intr($10, r);
  47. end;
  48.  
  49. { fade....}
  50. Procedure TextFadeOut(Speed : Integer);
  51. begin;
  52.   Repeat
  53.     erg := 0;
  54.     For x := 1 to 256 do
  55.       For y := 1 to 3 do
  56.       begin
  57.         if dac2[x, y] > 0 then
  58.           DEC(dac2[x, y]);
  59.         erg := erg + dac2[x, y];
  60.       end;
  61.     Write_Dacs(dac2);
  62.     Delay(Speed);
  63.   Until erg = 0;
  64. end;
  65.  
  66. { restore....fades also}
  67. Procedure TextFadeIn(Speed : Integer);
  68. begin;
  69.   Repeat
  70.     erg := 0;
  71.     For x := 1 to 256 do
  72.       For y := 1 to 3 do
  73.       begin
  74.        if dac2[x, y] < dac1[x, y] then
  75.          INC(dac2[x,y]);
  76.        erg := erg + dac2[x, y];
  77.       end;
  78.     Write_Dacs(dac2);
  79.     Delay(Speed);
  80.   Until (erg = gesamt) or (KeyPressed);
  81.   Write_Dacs(dac1);
  82. end;
  83.  
  84. begin
  85.   Read_Dacs(dac1);
  86.   dac2 := dac1;
  87.   gesamt := 0;
  88.   For x := 1 to 256 do
  89.     For y := 1 to 3 do
  90.       gesamt := gesamt + dac1[x, y];
  91.  
  92. end.
  93.